package cn.sccdlg.ssm.service;

import cn.sccdlg.ssm.domain.Permission;
import cn.sccdlg.ssm.domain.Role;

import java.util.List;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/10/27 22:28
 * 角色业务层接口
 */
public interface RoleService {

    /**
     * 查询所有角色信息
     */
    List<Role> findAll() throws Exception;

    /**
     * 保存角色
     * @param role 角色信息
     */
    void save(Role role) throws Exception;

    /**
     * 根据角色id查询角色信息
     * @param roleId 角色id
     */
    Role findById(String roleId) throws  Exception;

    /**
     * 根据角色id查询角色不具备的权限信息
     * @param roleId 角色id
     */
    List<Permission> findOtherPermissions(String roleId) throws Exception;

    /**
     * 保存角色与权限关联关系
     * @param roleId 角色id
     * @param permissionIds 权限id列表
     */
    void addPermissionToRole(String roleId, String[] permissionIds) throws Exception;

    /**
     * 根据角色id删除角色（含与权限的关联关系）
     * @param roleId 角色id
     */
    void deleteRoleById(String roleId) throws Exception;
}
